[新機能]ワンクリックでAmazon AthenaのAWS CloudTrail用テーブルが作成できるようになりました
こんにちは。サービスグループの武田です。
Amazon Athenaは、Amazon S3に保存されたデータを標準的なSQLで分析できるサービスです。またAWS CloudTrailは、AWSアカウント内で行われた操作のイベントログを記録できるサービスで、ログはS3に保存できます。両サービスを組み合わせることで、CloudTrailが取得したログをAthenaで分析できます。
しかしこれまでは分析用のテーブルを自分で作成する必要があり、ややハードルの高さがありました。今回のサービスアップデートで、S3バケットを指定するだけで簡単にテーブルが作れるようになりました。
AWS CloudTrail Log Search Using Amazon Athena
やってみた
さっそくマネジメントコンソールにアクセスしてやってみました。
まずはマネジメントコンソールからCloudTrailにアクセスします。ダッシュボードは変化なしです。
イベント履歴のページに遷移すると「Amazon Athen で高度なクエリを実行します」のリンクが追加されています!
これをポチッとします。
テーブル作成用のダイアログが表示されました。「保存場所」のプルダウンからCloudTrailのログが保存されているバケットを選択します。選択するとテンプレートが自動的に選択したバケットに合わせて書き換わります。
用意されているクエリのテンプレートは次のようになっていました。
CREATE EXTERNAL TABLE [TABLE_NAME] ( eventVersion STRING, userIdentity STRUCT< type: STRING, principalId: STRING, arn: STRING, accountId: STRING, invokedBy: STRING, accessKeyId: STRING, userName: STRING, sessionContext: STRUCT< attributes: STRUCT< creationDate: STRING, mfaAuthenticated: STRING>, sessionIssuer: STRUCT< type: STRING, principalId: STRING, arn: STRING, accountId: STRING, userName: STRING>>>, eventTime STRING, eventSource STRING, eventName STRING, awsRegion STRING, sourceIpAddress STRING, userAgent STRING, errorCode STRING, errorMessage STRING, requestParameters STRING, responseElements STRING, additionalEventData STRING, requestId STRING, eventId STRING, resources ARRAY<STRUCT< arn: STRING, accountId: STRING, type: STRING>>, eventType STRING, apiVersion STRING, readOnly STRING, recipientAccountId STRING, serviceEventDetails STRING, sharedEventID STRING, vpcEndpointId STRING ) COMMENT 'CloudTrail table for [S3_BUCKET_NAME] bucket' ROW FORMAT SERDE 'com.amazon.emr.hive.serde.CloudTrailSerde' STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION '[S3_BUCKET_URL]' TBLPROPERTIES ('classification'='cloudtrail');
注意点として、このダイアログ上ではSQLを書き換えることができません。そのためPARTITIONED BY
を追加したり、LOCATION
をバケットそのものではなく、特定の日付(/2018/03/15
のような)を指定するといったことはできませんでした。
保存場所を指定したら[テーブルの作成]ボタンをクリックします。
無事に作成されたようです。[Athena に移動]ボタンをクリックするとAthenaのコンソール画面に移動できます。
作成したテーブルをPreview table
で確認すると、きちんとデータが取れています!
まとめ
今まではCloudTrail用のテーブルを作成するのに、CREATE EXTERNAL TABLE
を自分で用意する必要がありましたが、ワンクリックで簡単に作れるようになりました。すばらしいですね。
私もはじめて作ろうとした際に右往左往した記憶があります。これから始めようという方達にとってうれしいアップデートでした!